Detection of hardware security attacks

ABSTRACT

In example implementations, an apparatus is provided. The apparatus includes an input sensor, a memory, a comparator, and a processor. The processor is communicatively coupled to the input sensor, the memory, and the comparator to control operation of the input sensor, the memory, and the comparator. The input sensor is to measure a bus signal of a computing device. The memory is to store the bus signal that is measured and a reference bus signal. The comparator is to compare the bus signal that is measured to the reference bus signal to detect a hardware security attack.

BACKGROUND

Computer hardware can be susceptible to various types of security attacks. Security of hardware can be infiltrated during manufacturing and before the hardware is delivered to an end customer. These security attacks can compromise sensitive information that is passed through or processed by the hardware.

For example, when hardware is manufactured, some manufacturing facilities may change the specifications or add additional hardware components that are outside of the specifications. The compromised hardware may then be installed at the customer site and used to collect sensitive or confidential information.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of an example apparatus to detect a hardware security attack of the present disclosure;

FIG. 2 is a block diagram of the apparatus connected to a system under test of the present disclosure;

FIG. 3 is a block diagram of an example signal profile of a boot sequence of a computing system of the present disclosure;

FIG. 4 is a block diagram of an example signal profile of a boot sequence of a computing system that has a hardware security attack of the present disclosure;

FIG. 5 is a flow chart of an example method for detecting hardware security attacks; and

FIG. 6 is a block diagram of an example non-transitory computer readable storage medium storing instructions executed by a processor to detect hardware security attacks.

DETAILED DESCRIPTION

Examples described herein provide a method and apparatus to detect hardware security attacks. As discussed above, computer hardware can be susceptible to various types of security attacks. Security of hardware can be infiltrated during manufacturing and before the hardware is delivered to an end customer. These security attacks can compromise sensitive information that is passed through or processed by the hardware.

Some methods attempt to detect these hardware attacks, but all have certain shortcomings. Some example methods may include hardware root of trust, silicon root of trust, trusted platform module, and the like. These methods all attempt to provide protection against firmware attacks.

The present disclosure provides a method and apparatus that takes a logical approach to detect security attacks. Thus, even if the physical deterrents are overcome by a hacker, the present disclosure may still detect the hardware security attack. For example, each boot sequence of a processor or computing hardware may have a certain profile of bus signals as instructions are accessed from memory and executed. However, compromised hardware may execute malicious code that may change the way and the timing of how the boot sequence executes. The present disclosure may detect the hardware security attack by monitoring the bus signal profile of a boot sequence of a computing system. As a result, the present disclosure may improve security of hardware and improve detection of hardware security attacks, even from added hardware that may be undetectable by the naked eye. In addition, the present disclosure may change the way a computing system operates by adding a security check during startup.

FIG. 1 illustrates an example apparatus 100 of the present disclosure. The apparatus 100 may be a trusted measuring device to test computing devices or systems to ensure that the firmware of the computing device has not been modified, hacked, or compromised. For example, the apparatus 100 may be a device that may measure various signals of a computing device. For example, the apparatus 100 may be an oscilloscope that has been modified to measure certain bus signals and to perform the functions described herein.

In one example, the apparatus 100 may include a processor 102, a memory 104, a comparator 108, and an input sensor 110. The processor 102 may be communicatively coupled to the memory 104, the comparator 108, and the input sensor 110. The processor 102 may control operation of the comparator 108 and the input sensor 110.

The input sensor 110 may comprise probes or devices that can measure electrical signals from a target computing system or device. In one example, the input sensor 110 may measure a bus signal of a computing device, as discussed below and illustrated in FIG. 2. The bus signal may be a signal that is generated by the computing device during execution of a boot loader instruction of the computing device.

Boot loader instructions may be instructions or software that may be executed when a computing device is powered on. The boot loader instructions may be executed to help load an operating system and prepare the operating system for execution. Boot loader instructions may be stored in non-volatile memory of the computing device (e.g., a read-only memory (ROM)). In one example, for an x86 processor, the boot loader instructions may be the ROM basic input/output system (BIOS). On a non-x86 processor, the boot loader instructions may be a “u-boot”.

In one example, checking the signals measured during execution of the boot loader instructions may ensure that security of a computing device is verified before the computing device is used. For example, malicious code may be added as part of the boot loader instructions to cause certain applications in the operating system to be compromised without detection. If the boot loader instructions are compromised, the measured signals for the boot loader instructions may be different compared to how the measured signals should appear.

If the boot loader instructions appear to indicate that the computing device has been comprised, then the computing device can be powered down or the boot loader instructions can be stopped. Thus, if the computing device has been hacked, loss of sensitive information can be prevented. In other words, the computing device can be removed from use before confidential applications are executed, confidential information is electronically stored or transmitted, and the like.

In one example, the memory 104 may be a non-transitory computer readable medium that may store measured bus signals 112 and reference bus signals 114. In one example, the memory 104 may comprise different types of memory devices. For example, the memory 104 may include non-volatile memory (e.g., read-only memory (ROM)) to store the reference bus signals 114. The memory 104 may also include a register or a buffer to store the measured bus signals 112.

In one example, the reference bus signals 114 may be pre-defined bus signals or known bus signals associated with untampered or “good” computing systems. The reference bus signals 114 may provide a profile of bus signals that are measured over time.

FIG. 3 illustrates an example profile 300 of the reference bus signals 114. In one example, the profile 300 may include a graphical representation of the bus signals. The profile 300 may be graphed on a y-axis that represents a detected bus signal (e.g., 0 or 1) and an x-axis that represents time (e.g., in nanoseconds (ns)).

The profile 300 illustrates various different bus signals that can be measured. For example, the bus signals of a system clock (SCLK), a slave select (SS) or chip select, a master in, slave out (MISO), and a master out, slave in (MOSI) may be measured. The SCLK may show a period of each cycle of the bus signals. The SCLK may also synchronize data between a processor and other components within a computing device that is being monitored.

The SS may refer to a control line that may be used to select a particular chip or integrated circuit connected to the bus. The SS signal may be high when a particular slave chip is selected. In one example, if there are multiple slave chips connected to the bus, the bus signal of each slave chip may be measured.

The MOSI signal may indicate when address commands are issued by a processor of the computing device that is being monitored. The MISO signal may indicate when code instructions are returned from the slave chip.

In one example, at least the SCLK, the SS, and the MISO may be measured to obtain a bit value for the boot loader instructions. For example, the SCLK, the SS, and the MISO may provide an indication of the activity when a bus (e.g., a serial peripheral interface (SPI) bus) executes the boot loader instructions. As noted above, an uncompromised computing device, or a computing device that has not been hacked, may have a known sequence of activity for certain bus signals. For an SPI bus, the SCLK, the SS, and the MISO may properly characterize the execution of the boot loader instructions.

In one example, the profile 300 may include peaks 308 ₁ to 308 _(n) (hereinafter also referred to individually as a peak 308 or collectively as peaks 308). In one example, the each peak 308 may represent a detected bus signal. In addition, the profile 300 may track time spans 310 ₁ to 310 _(m) (hereinafter also referred to individually as a time span 310 or collectively as time spans 310) between each peak 308. In one example, each time span 310 may be a clock cycle and eight clock cycles may be a bus cycle. FIG. 3 illustrates an example of a profile 300 of bus signals associated with a computing system that has not been hacked or compromised.

In one example, when a target computing system is started or powered on, the processor of the computing system may begin accessing the memory to execute the boot loader instructions. In one example, the bus signals of the processor may be monitored or tracked for a predefined period of time. For example, the pre-defined period of time may be long enough to generate a reliable profile of bus signals for the processor (e.g., at least one bus cycle, several seconds, and the like). The memory 104 may store measured bus signals 112 that are monitored by the apparatus 100.

After the predefined period of time or bus cycles has expired, a profile may be generated for the measured bus signals 112. Observing and storing the profiles of the bus signals may consume memory and processing resources and be relatively expensive. To improve the efficiency of observing and storing the profiles, a hash or a checksum may be applied to the measured bus signals 112 before being accessed or provided to the comparator 108. The hash or the checksum may reduce the overall cost of memory and processing resources to observe and store the profiles. In other words, the hash or the checksum may help to improve the efficiency of verifying the data integrity of the measured bus signals 112 that are collected. Any type of hash or checksum may be applied (e.g., a message-digest algorithm 5 (MD5), a secure hash algorithm (SHA), and the like).

In one example, the comparator 108 may access the profile of the measured bus signals 112 and the reference bus signals 114. The comparator may compare the profile of the measured bus signals 112 and the profile of the reference bus signals 114 to determine if they match. If the profile of the measured bus signals 112 matches the profile of the reference bus signals 114, then no hardware security attack may be detected. If the profile of the measured bus signals 112 fails to match the profile of reference bus signals 114, then a hardware security attack may be detected.

FIG. 4 illustrates an example of profiles 400 of the measured bus signals 112 that are monitored. In one example, the profiles 400 may include a MISO reference profile 402 and a measured MISO profile 404 of the bus signals of the MISO. The profile 402 illustrates an example of a good profile of bus signals for the MISO. The profile 402 may be collected for at least one bus cycle. Although the profile 402 illustrates one bus cycle, it should be noted that the profile 402 may be collected for multiple bus cycles.

The profile 404 may represent measured bus signals of the MISO of a target computing device. The profile 404 may be also measured for a bus cycle. As can be seen in FIG. 4, the bus signal 408 of the profile 402 and the bus signal 410 of the profile 404 in the last clock cycle do not match. Thus, when the profile 402 is compared to the profile 404 by the comparator 108, a mismatch may be detected. Thus, the processor of the target computing system may appear to be executing different instructions or perhaps malicious code that has been inserted into the memory of the target computing device.

Thus, the comparator 108 may determine that a hardware security attack has occurred on the target computing device. However, in another example, if the profile 402 were to match the profile 404, then no hardware security attack may be detected.

In one example, when the comparator 108 detects a hardware security attack, the comparator 108 may generate a notification. In one example, the notification may be a boot inhibitor signal that is transmitted to a processor of the target computing device. The boot inhibitor signal may cause the processor of the target computing device to stop executing the boot loader instructions, reset, power down, and the like.

In one example, the notification may notify a user that the hardware security attack has occurred and that the target computing device should not be used. For example, the notification may be sent to a display (illustrated in FIG. 2 and discussed below) that is communicatively coupled to the apparatus 100.

FIG. 2 illustrates an example of the apparatus 100 that is connected to a system under test 200 to detect a hardware security attack of the present disclosure. In one example, the apparatus 100 may be the same as the apparatus 100 illustrated in FIG. 1.

In one example, the system under test 200 may be a computing system or device. The system under test 200 may be tested by the apparatus 100 when received by a customer before the system under test 200 is deployed. For example, the customer may check the system under test 200 with the apparatus 100 to determine if the system under test 200 was hacked during or after the system under test 200 was manufactured.

The system 200 may include a processor 202 and a memory 204. The processor 202 may be communicatively coupled to the memory 204 to execute instructions stored in the memory 204. It should be noted that the system under test 200 has been simplified for ease of explanation and may include addition components not shown. For example, the system 200 may include addition interfaces, circuit boards, graphics cards, displays, input/output devices, and the like.

In one example, the memory 204 may be a non-volatile memory (e.g., ROM) that stores boot loader instructions 206. As discussed above, the boot loader instructions may be the BIOS for x86 processor based systems or “u-boot” for non-x86 processor based systems.

The apparatus 100 may be coupled (e.g., removably coupled or in contact with) to test points 208 on the system 200. The test points 208 may be select pins that are adjacent to the processor 202 and located between the processor 202 and the memory 204. The test points 208 may be located as close to the processor 202 as possible to prevent hackers from intercepting the bus signals and modifying the monitored bus signals. In one example, if the traces to the select pins are embedded in the board under ball grid array (BGA) chips on both ends, the traces may be exposed to create the test points 208.

In one example, the pins may be general purpose input output (GPIO) that can be used to measure certain bus signals for a serial peripheral interface (SPI) bus, although other input/output pins on different types of buses of the system 200 may be used. The pins can be used to measure bus signals associated with SCLK, SS, MISO, MOSI, and the like, as illustrated in FIGS. 3 and 4 and described above.

The bus signals may be measured at the test points 208 and received by the apparatus 100 (e.g., via the input sensor 110). The apparatus 100 may then process the bus signals to detect if a hardware security attack has occurred on the system 100, as described above. For example, the apparatus 100 may compare the profile of bus signals measured from the test points 208 to a known profile of bus signals for a known “good” computing device. If the profiles match then no hardware security attack may be detected. If the profiles do not match, then a hardware security attack may be detected.

If a hardware security attack is detected, the apparatus 100 may generate a boot inhibitor signal 210. The boot inhibitor signal 210 may be transmitted to the system 200 and the processor 202. In response to receiving the boot inhibitor signal 210, the processor 202 may stop executing the boot loader instructions, restart, power down, and the like.

In one example, if a hardware security attack is detected a notification may be displayed on a display 212. The display 212 may be a monitor or television that is communicatively coupled to the apparatus 100. The apparatus may include a video interface to connect to the display 212.

FIG. 5 illustrates a flow diagram of an example method 500 for detecting hardware security attacks. In an example, the method 500 may be performed by the apparatus 100 or the apparatus 600 illustrated in FIG. 6 and described below.

At block 502, the method 500 begins. At block 504, the method 500 monitors bus signals of a computing system that is executing boot loader instructions. For example, the computing system may execute boot loader instructions when a processor of the computing system is powered on. The boot loader instructions may be instructions to initialize the computing system and operating system. The boot loader instructions may be stored in non-volatile memory (e.g., a read only memory (ROM) of the computing device). In one example, for an x86 processor, the boot loader instructions may be the ROM basic input/output system (BIOS). On a non-x86 processor, the boot loader instructions may be a “u-boot”.

In one example, the bus signals may be measured from a serial peripheral interface (SPI) of the computing system. For example, probes of the apparatus or trusted measuring device may be coupled to select pins of the SPI located between the processor and the non-volatile memory of the computing device. The bus signals may include a SCLK, SS, and MISO signal for the SPI. In one example, the probes may be coupled to general purpose input output (GPIO) pins of the SPI. After the probe is connected to the desired pins, the computing system may be powered on to begin monitoring of the bus signals as the boot loader instructions are executed by the computing system.

The bus signals may represent each time the processor accesses an instruction from memory. The access may be logged as a clock cycle. A plurality of clock cycles may represent a bus cycle. The bus signals may be tracked over a pre-defined period of time (e.g., at least one bus cycle). The bus signals may generate a profile of the bus signals versus time.

In one example, the bus signals may be stored in a register or a buffer. For example, each detection of a bus signal may be recorded as a value of 1. When no bus signal is detected, the value may be recorded as a value of 0.

At block 506, the method 500 compares a profile of the bus signals to a pre-defined profile of bus signals. In one example, the profile of the bus signals may be provided to a bus signal comparator. The bus signals may be hashed, or a checksum may be applied, to the bus signals that are stored before being provided to the bus signal comparator. Hashing the bus signals may reduce the overall use of memory and processor resources to observe and monitor the bus signals. Any type of hash or checksum may be applied (e.g., a message-digest algorithm 5 (MD5), a secure hash algorithm (SHA), and the like).

In one example, the profile of the bus signals that are monitored during start-up, or power on, of the computing device may be compared to the pre-defined profile of bus signals or a reference profile of bus signals. The pre-defined profile of bus signals may be generated and stored during manufacturing of the computing device when the boot loader instructions are stored in memory. The pre-defined profile of bus signals represents how the processor should operate to execute the boot loader instructions.

Any deviation between the profile of the bus signals that are monitored and the pre-defined profile of bus signals may indicate that the processor and/or other hardware on the computing system may be compromised. In other words, a hardware security attack may be detected when the profile of the bus signals that are monitored does not match the pre-defined profile of the bus signals. As noted above, if a malicious program is installed in the boot loader instructions, the measured signals associated with the execution of the boot loader instructions may have a different profile than expected indicating that the hardware security attack may be detected. If the profile of the bus signals that are monitored matches the pre-defined profile of bus signals, then no hardware security attack may be detected and the processor and/or other hardware on the computing system may be operating as intended.

At block 508, the method 500 generates a notification that a hardware security attack is detected when the profile of the bus signals fails to match the pre-defined profile of bus signals. In one example, notification may be a boot inhibitor signal. The boot inhibitor signal may be transmitted to the processor of the computing device to cause the processor to stop executing the boot loader instructions, restart, power down, and the like.

In one example, the notification may be sent to a display. As a result, a user may see that the hardware on the computing device may be compromised and remove the computing system from use or prevent further operation of the computing system. At block 510, the method 500 ends.

FIG. 6 illustrates an example of an apparatus 600. In an example, the apparatus 600 may be the apparatus 100. In an example, the apparatus 600 may include a processor 602 and a non-transitory computer readable storage medium 604. The non-transitory computer readable storage medium 604 may include instructions 606, 608, 610, and 612 that, when executed by the processor 602, cause the processor 602 to perform various functions.

In an example, the instructions 606 may include instructions to receive a bus signal measured from a computing system that is executing a boot loader instruction. The instructions 608 may include instructions to store the bus signal for a bus cycle of the boot loader instructions. The instructions 610 may include instructions to generate a profile of bus signals that are stored over time. The instructions 612 may include instructions to detect a hardware security attack based on the profile of bus signals.

It will be appreciated that variants of the above-disclosed and other features and functions, or alternatives thereof, may be combined into many other different systems or applications. Various presently unforeseen or unanticipated alternatives, modifications, variations, or improvements therein may be subsequently made by those skilled in the art which are also intended to be encompassed by the following claims. 

1. An apparatus, comprising: an input sensor to measure a bus signal of a computing device; a memory to store the bus signal that is measured and a reference bus signal; a comparator to compare the bus signal that is measured to the reference bus signal to detect a hardware security attack; and a processor communicatively coupled to the input sensor, the memory, and the comparator to control operation of the input sensor, the memory, and the comparator.
 2. The apparatus of claim 1, wherein the input sensor comprises a probe to connect to a test point of the computing device.
 3. The apparatus of claim 2, wherein the test point comprises select pins adjacent to a processor of the computing device.
 4. The apparatus of claim 2, wherein the select pins are associated with at least one of: a system clock, a slave select, a master slave in, slave out, or a master out, slave in.
 5. The apparatus of claim 1, wherein the memory comprises a register or a buffer to store the bus signal that is measured.
 6. The apparatus of claim 1, wherein the memory comprises a non-volatile memory to store the reference bus signal.
 7. The apparatus of claim 1, wherein bus signal is measured for at least one bus cycle.
 8. The apparatus of claim 1, wherein the bus signal of the computing device measured for boot loader instructions executed by the computing device.
 9. A method, comprising: monitoring, by the processor, bus signals of a computing system that is executing boot loader instructions; comparing, by the processor, a profile of the bus signals to a pre-defined profile of bus signals; and generating, by the processor, a notification that a hardware security attack is detected when the profile of the bus signals fails to match the pre-defined profile of bus signals.
 10. The method of claim 9, wherein the monitoring is performed for a bus cycle of the boot loader instructions.
 11. The method of claim 10, wherein the bus signals indicate when the processor of the computing system accesses each instruction of the boot loader instructions from a non-volatile memory.
 12. The method of claim 11, wherein the monitoring comprises receiving the bus signals from input sensors coupled to select pins of the computing system located between the processor of the computing system and the non-volatile memory.
 13. The method of claim 9, wherein the monitoring, comprises: storing, by the processor, the bus signals in a register or a buffer.
 14. The method of claim 9, further comprising: applying, by the processor, a hash or a checksum to the bus signals before the comparing.
 15. The method of claim 14, wherein the notification comprises a boot inhibitor signal.
 16. A non-transitory computer readable storage medium encoded with instructions executable by a processor, the non-transitory computer-readable storage medium comprising: instructions to receive a bus signal measured from a computing system that is executing a boot loader instruction; instructions to store the bus signal for a bus cycle of the boot loader instructions; instructions to generate a profile of bus signals that are stored over time; and instructions to detect a hardware security attack based on the profile of bus signals.
 17. The non-transitory computer readable storage medium of claim 16, wherein the instructions to detect comprises: instructions to compare the profile of bus signals to a reference profile of bus signals to determine a mismatch between the profile of bus signals and the reference profile of bus signals.
 18. The non-transitory computer readable storage medium of claim 17, further comprising: instructions to apply a hash or a checksum to the profile of bus signals before the instructions to compare.
 19. The non-transitory computer readable storage medium of claim 16, wherein the instructions to transmit, comprises: instructions to generate a notification when the hardware security attack is detected.
 20. The non-transitory computer readable storage medium of claim 19, wherein the notification comprises a boot inhibitor signal. 